1. Technical Field
The present invention relates generally to the field of distributed computer systems; and more particularly to a symbiotic computing system that establishes symbiotic relationships between a plurality of computers wherein the symbiotic relationships operate to establish and maintain coherency among managed resources that are located on the plurality of computers.
2. Related Art
Computer networks are generally known to include a plurality of physically separated computers coupled by communication links. The computers may include mainframe computers, personal computers, hand-held computers, wearable computers and other types of computers. The communication links may include wired networks such as local area networks and wide area networks, the Internet, public telephone subscriber lines that support communications between computers as well as voice communications, wireless networks and other communication networks that may be employed to facilitate digital communications among the computers. Computers are networked so that data may be passed among the computers. Sharing resources, facilitating communications, exchanging data, supporting voice and video communications, facilitating electronic messaging and facilitating electronic commerce are a few of many tasks that are enabled by the computer network.
Resource sharing is a common purpose when establishing a computer network. Shared resources may include data files, application programs, data bases, processing capacity and communication resources, among many other shared resources. In the sharing of resources, security, reliability, availability and appropriateness of the shared resources are primary concerns. However, with the distributed nature of the members of the computer network and the reliability of the computers, satisfying such concerns is often difficult.
Because most computer networks interface to the Internet, or to another larger network via a dedicated or dial-up connection, each computer coupled to the network is susceptible to break-in in which case data may be stolen or destroyed. While firewalls and other safeguards may be placed to increase the security of the network, data passing between computers on the network may be easily “snooped” by a third party listener. Since it is common for complete data files that contain sensitive information to pass from computer to computer on the computer network, the data files may easily be captured in full by the snooping third party. Additionally, snooping is much easier to accomplish on the Internet or another public accessible network.
The availability of shared resources, such as data files, is another primary concern in the operation of computer networks. Suppose that a particular computer on a computer network has resident thereupon a data file that requires access by other computers coupled to the network. When the network is operating properly and the particular computer is also operating and coupled to the computer network, each other computer may access the data file. However, when the network is unreliable, the data file may become unavailable even though it is resident upon a networked computer. The location of data files also affects their availability. When data files are stored on a tape drive, for example, access to the data file via the tape drive may require human intervention within an inconvenient amount of time.
The appropriateness of shared resources is another primary concern. When a data file becomes corrupt, a prior version of the data file, perhaps stored on a more secure medium, is retrieved and used as a replacement. However, any changes that have been made to the data file since the backup was made have been lost. Further, the environment within which the data file is used may have been altered since the backup was made. In either case, the backup copy of the data file may not function within the environment.
To increase the reliability of shared data, backups are often maintained on tape backup devices. While this successfully increases reliability of the shared data, it causes problems with respect to appropriateness and availability of the backed-up shared data.
Many applications are dependent upon the reliability of the computer network. For example, in the case of a computer network supporting multiple cash registers within a department store, each cash register accesses a server via the computer network during each transaction. When the computer network is down, the cash register immediately fails to operate and does not function until the computer network again becomes available.
Thus, there is a need in the art for a system that overcomes these shortcomings related to the sharing of resources in a computer network and that compensates for some of the shortcomings related to the availability and reliability of both the computers coupled to the computer network and of the computer network itself.